package com.xmj.billing.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xmj.common.annotation.Excel;
import com.xmj.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 收银对象 BarberShopBillings
 *
 * @author ohh
 * @date 2024-04-21
 */
public class BarberShopBillings extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 账单ID */
    private Long billingID;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Long customerID;

    /** 理发师ID */
    @Excel(name = "理发师ID")
    private Long barberID;

    /** 服务类型ID */
    @Excel(name = "服务类型ID")
    private Long servicetypeID;

    /** 服务开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "服务开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date servicestartTime;

    /** 服务结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "服务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date serviceendTime;

    /** 服务总费用（含税 */
    @Excel(name = "服务总费用", readConverterExp = "服务总费用（含税")
    private BigDecimal totalAmount;

    /** 实际支付金额（可能包含优惠、折扣等） */
    @Excel(name = "实际支付金额", readConverterExp = "可=能包含优惠、折扣等")
    private BigDecimal paidAmount;

    /** 支付方式ID */
    @Excel(name = "支付方式ID")
    private Long paymentmethodID;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /** 备注（如特殊要求、优惠信息等） */
    @Excel(name = "备注", readConverterExp = "如=特殊要求、优惠信息等")
    private String Remarks;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    public void setBillingID(Long billingID)
    {
        this.billingID = billingID;
    }

    public Long getBillingID()
    {
        return billingID;
    }
    public void setCustomerID(Long customerID)
    {
        this.customerID = customerID;
    }

    public Long getCustomerID()
    {
        return customerID;
    }
    public void setBarberID(Long barberID)
    {
        this.barberID = barberID;
    }

    public Long getBarberID()
    {
        return barberID;
    }
    public void setServicetypeID(Long servicetypeID)
    {
        this.servicetypeID = servicetypeID;
    }

    public Long getServicetypeID()
    {
        return servicetypeID;
    }
    public void setServicestartTime(Date servicestartTime)
    {
        this.servicestartTime = servicestartTime;
    }

    public Date getServicestartTime()
    {
        return servicestartTime;
    }
    public void setServiceendTime(Date serviceendTime)
    {
        this.serviceendTime = serviceendTime;
    }

    public Date getServiceendTime()
    {
        return serviceendTime;
    }
    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setPaidAmount(BigDecimal paidAmount)
    {
        this.paidAmount = paidAmount;
    }

    public BigDecimal getPaidAmount()
    {
        return paidAmount;
    }
    public void setPaymentmethodID(Long paymentmethodID)
    {
        this.paymentmethodID = paymentmethodID;
    }

    public Long getPaymentmethodID()
    {
        return paymentmethodID;
    }
    public void setPaymentTime(Date paymentTime)
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime()
    {
        return paymentTime;
    }
    public void setRemarks(String Remarks)
    {
        this.Remarks = Remarks;
    }

    public String getRemarks()
    {
        return Remarks;
    }
    public void setCreationTime(Date creationTime)
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime()
    {
        return creationTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("billingID", getBillingID())
            .append("customerID", getCustomerID())
            .append("barberID", getBarberID())
            .append("servicetypeID", getServicetypeID())
            .append("servicestartTime", getServicestartTime())
            .append("serviceendTime", getServiceendTime())
            .append("totalAmount", getTotalAmount())
            .append("paidAmount", getPaidAmount())
            .append("paymentmethodID", getPaymentmethodID())
            .append("paymentTime", getPaymentTime())
            .append("Remarks", getRemarks())
            .append("creationTime", getCreationTime())
            .toString();
    }
}
